/**
 * Created by Administrator on 2017/5/12.
 */
/**
 *获取json数据
 * */
(
    function(){
        window.StaictSouceUtil = Class.extend({
            init : function () {
                //初始化一个存放所有图片的空对象
                this.allImageObj = {};
            },

            //图片加载
            //回调函数里面包括存放的所有图片对象，总图片数量，已经加载好的图片数量
            onLoadImage : function(jsonUrl,callBack){
                //保存指针
                var self = this;
                //获取json请求对象
                var response = new XMLHttpRequest();
                //设置请求路径
                response.open("get",jsonUrl);
                //发送请求
                response.send();
                //监听请求状态
                response.onreadystatechange = function () {
                    //请求成功
                    if(response.readyState == 4 && response.status ==200){
                        //拿到json字符串数据
                      var  jsonText = response.responseText;
                        //转换为json对象
                      var jsonObj = JSON.parse(jsonText);
                        console.log(jsonObj);
                        //记录已经加载好的图片数量
                        var sLoadImageCount = 0;
                        //获取json数据里面的图片存放在图片数组里面
                        var ArrImage = jsonObj.images;
                        //遍历循环图片数组
                        for (var i = 0; i < ArrImage.length; i++) {
                            //获取dom对象
                            var img = new Image();
                            img.src = ArrImage[i].src;
                            //保存索引
                            img.index = i;

                            img.onload = function () {
                                //已经加载的图片
                                sLoadImageCount++;
                        //获取每个图片的name值当做图片对象的key值保存,例如
                        // 这样就可以通过传入“fuzi”,找到json中name=“fanzi”的整条数据
                                var key = ArrImage[this.index].name;
                                //this - img
                                self.allImageObj[key] = this;
                                console.log(self.allImageObj[key]);
                                callBack(self.allImageObj,ArrImage.length,sLoadImageCount)
                            }
                        }
                    }
                }
            }
        })
    }
)();